home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / doc / libmad0 / TODO < prev   
Text File  |  2004-02-05  |  2KB  |  70 lines

  1.  
  2.  libmad - MPEG audio decoder library
  3.  Copyright (C) 2000-2004 Underbit Technologies, Inc.
  4.  
  5.  $Id: TODO,v 1.3 2004/02/05 09:02:39 rob Exp $
  6.  
  7. ===============================================================================
  8.  
  9. libmad:
  10.   - more API layers (buffering, PCM samples, dithering, etc.)
  11.   - x86 performance optimization compiler flags
  12.   - function documentation, general docs
  13.   - finish async API
  14.   - parse system streams?
  15.   - MPEG-2 MC, AAC?
  16.   - logarithmic multiplication?
  17.   - multiple frame decoding for better locality of reference?
  18.   - frame serial numbers, Layer III frame continuity checks
  19.  
  20. fixed.h:
  21.   - experiment with FPM_INTEL:
  22.  
  23. # if 1
  24. #    define mad_f_scale64(hi, lo)  \
  25.     ({ mad_fixed_t __result;  \
  26.        asm ("shrl %3,%1\n\t"  \
  27.         "shll %4,%2\n\t"  \
  28.         "orl %2,%1"  \
  29.         : "=rm" (__result)  \
  30.         : "0" (lo), "r" (hi),  \
  31.           "I" (MAD_F_SCALEBITS), "I" (32 - MAD_F_SCALEBITS)  \
  32.         : "cc");  \
  33.        __result;  \
  34.     })
  35. # else
  36. #    define mad_f_scale64(hi, lo)  \
  37.     ({ mad_fixed64hi_t __hi_;  \
  38.        mad_fixed64lo_t __lo_;  \
  39.        mad_fixed_t __result;  \
  40.        asm ("sall %2,%1"  \
  41.         : "=r" (__hi_)  \
  42.         : "0" (hi), "I" (32 - MAD_F_SCALEBITS)  \
  43.         : "cc");  \
  44.        asm ("shrl %2,%1"  \
  45.         : "=r" (__lo_)  \
  46.         : "0" (lo), "I" (MAD_F_SCALEBITS)  \
  47.         : "cc");  \
  48.        asm ("orl %1,%2"  \
  49.         : "=rm" (__result)  \
  50.         : "r" (__hi_), "0" (__lo_)  \
  51.         : "cc");  \
  52.        __result;  \
  53.     })
  54. # endif
  55.  
  56. libmad Layer I:
  57.   - check frame length sanity
  58.  
  59. libmad Layer II:
  60.   - check frame length sanity
  61.  
  62. libmad Layer III:
  63.   - circular buffer
  64.   - optimize zero_part from Huffman decoding throughout
  65.   - MPEG 2.5 8000 Hz sf bands? mixed blocks?
  66.   - stereo->mono conversion optimization?
  67.   - enable frame-at-a-time decoding
  68.   - improve portability of huffman.c
  69.  
  70.